#include <my_header.h>

/* Usage:  ./7_sigaction_SA_RESTART*/
void func(int sig_value){
    printf("sig_value: %d \n", sig_value);
}
int main(void)
{
    struct sigaction act, old;
    memset(&act , 0, sizeof(act));
    act.sa_handler = func;

    // 不设置SA_RESTART, 则下面的read在信号执行函数结束后不会重启
    // 设置SA_RESTART, 则下面的read在信号执行函数结束后会重启
    act.sa_flags = SA_RESTART; 

    sigaction(SIGINT, &act, &old);
    // ctrl+c 以后还会执行下面的read函数
    // 需要输入数据
    char buf[60] = {0};
    read(STDIN_FILENO, buf, sizeof(buf));
    printf("上述已输入数据:");
    puts(buf);

    return 0;
}
